package beans;

import java.util.ArrayList;
import java.util.List;

import javax.naming.NamingException;
import javax.swing.JOptionPane;

import org.richfaces.component.html.HtmlDataTable;
import co.edu.uniquindio.ondas.delegados.GrupoDelegado;
import co.edu.uniquindio.ondas.dtos.ResumenComentarioDTO;
import co.edu.uniquindio.ondas.dtos.ResumenInvestigacionGrupoDTO;
import co.edu.uniquindio.ondas.entidades.Actividad;
import co.edu.uniquindio.ondas.entidades.Asesor;
import co.edu.uniquindio.ondas.entidades.Bitacora1Maestro;
import co.edu.uniquindio.ondas.entidades.Bitacora2;
import co.edu.uniquindio.ondas.entidades.Bitacora2Maestro;
import co.edu.uniquindio.ondas.entidades.Bitacora3;
import co.edu.uniquindio.ondas.entidades.Bitacora3Maestro;
import co.edu.uniquindio.ondas.entidades.Bitacora4Maestro;
import co.edu.uniquindio.ondas.entidades.Bitacora5;
import co.edu.uniquindio.ondas.entidades.Comentario;
import co.edu.uniquindio.ondas.entidades.ComentarioAsesor;
import co.edu.uniquindio.ondas.entidades.Consulta;
import co.edu.uniquindio.ondas.entidades.Encuesta;
import co.edu.uniquindio.ondas.entidades.Estudiante;
import co.edu.uniquindio.ondas.entidades.Grupo;
import co.edu.uniquindio.ondas.entidades.InformeAvanceTecnico;
import co.edu.uniquindio.ondas.entidades.InformeFinal;
import co.edu.uniquindio.ondas.entidades.Maestro;
import co.edu.uniquindio.ondas.entidades.RespuestaComentario;
import co.edu.uniquindio.ondas.entidades.RespuestaConsulta;
import co.edu.uniquindio.ondas.entidades.Segmento;
import co.edu.uniquindio.ondas.entidades.VisitaProgramada;

/**
 * @author Javier
 *Bean para el Grupo del sistema
 */
public class GrupoBean {

	private Grupo grupo = new Grupo();
	/**
	 * verificacion para saber si el grupo esta autenticado o no
	 */
	private boolean autenticado = false;

	/**
	 * para saber si el grupo tiene investigaciones
	 */
	private boolean tieneInvestigacion = false;

	/**
	 * para saber la investigacion seleccionada fue selecciona para ser
	 * patrocinada
	 */
	private boolean seleccionado = false;

	/**
	 * para saber si una investigacion esta activa
	 */
	private boolean activo;

	/**
	 * indica si el grupo tiene una investigacion seleccionada para trabajar
	 */
	private boolean investigacionSeleccionada = false;
	/**
	 * indica si el grupo no tiene investigaciones para crear una nueva
	 */
	private boolean nuevaInvestigacion=false;

	/**
	 * Tabla donde se cargan todas las investigaciones
	 */
	private HtmlDataTable tablaInvestigaciones;

	/**
	 * DTO Resumen de Investigaviones Listas de investigaciones
	 */
	private List<ResumenInvestigacionGrupoDTO> investigaciones;

	private Bitacora2 bitacora2 = new Bitacora2();
	private Bitacora3 bitacora3 = new Bitacora3();
	private Bitacora1Maestro bitacora1Maestro = new Bitacora1Maestro();
	private Bitacora2Maestro bitacora2Maestro = new Bitacora2Maestro();
	private Bitacora3Maestro bitacora3Maestro = new Bitacora3Maestro();
	private Bitacora4Maestro bitacora4Maestro = new Bitacora4Maestro();
	private InformeAvanceTecnico informeAvanceTecnico = new InformeAvanceTecnico();
	private VisitaProgramada visitaProgramada = new VisitaProgramada();
	private InformeFinal informeFinal=new InformeFinal();

	private Bitacora5 bitacora5 = new Bitacora5();

	private List<Segmento> listaSegmanetos;
	private Segmento segmento1;
	private Segmento segmento2;
	private Segmento segmento3;

	private List<Actividad> listaActividades;
	private Actividad nuevaActividad = new Actividad();
	private Actividad actividadSeleccionada = new Actividad();
	private HtmlDataTable tablaActividad;
	private HtmlDataTable tablaAvance;

	/**
	 * Tabla que permite almacenar la consultas realizadas por el grupo
	 */
	private HtmlDataTable tablaConsulta;
	private Consulta consultaSeleccionada = new Consulta();
	private Consulta nuevaConsulta = new Consulta();
	private List<Consulta> listaConsultas;
	private List<RespuestaConsulta> listaRespuestasConsulta;

	private List<ComentarioAsesor> listaComentarios;

	/**
	 * DTO que permite determinar si una Investigacion ha sido financiada o no
	 */
	private ResumenInvestigacionGrupoDTO inSeleccionada = new ResumenInvestigacionGrupoDTO(
			0, false, false, 0);

	private GrupoDelegado grupoDelegado;

	private Encuesta encuesta = new Encuesta();

	private List<String> respuestas;
	private List<String> respuestasEncuesta;
	private List<String> listaLineas;
	private List<String> listaDestinoConsulta;

	private Asesor asesor;
	private String lineaSeleccionada;
	private String nombreInvestigacion = "";
	private String destinoSeleccionado;

	/**
	 * Lista que me permite almacenar los comentarios de una investigacion
	 */
	private List<Comentario> listaComentariosInvestigacion;
	private List<RespuestaComentario> listaRespuestasComentario;
	private HtmlDataTable tablaComentarioInv;
	private Comentario comentarioSeleccionado = new Comentario();
	private Comentario nuevoComentario = new Comentario();

	/**
	 * DTO lista de comentarios del grupo
	 */
	private List<ResumenComentarioDTO> listaComentariosGrupos;
	private ResumenComentarioDTO comentariosGrupo;
	private HtmlDataTable tablaComentarioGrupo;
	private Comentario nuevoComentarioGrupo = new Comentario();;
	private RespuestaComentario nuevaRespuestaGrupo = new RespuestaComentario();

	/**
	 * Lista de estudiantes
	 */
	private List<Estudiante> listaEstudiantes;
	private HtmlDataTable tablaEstudiantes;
	private Estudiante nuevoEstudiante = new Estudiante();
	private Estudiante estudianteSeleccionado = new Estudiante();
	
	private List<Maestro> listaMaestros;
	/**
	 * Tabla que permite cargar todos los maestros registrados en el sistema
	 */
	private HtmlDataTable tablaMaestros;
	private Maestro nuevoMaestro=new Maestro();
	private Maestro maestroSeleccionado=new Maestro();
	
	/**
	 * Lista de sexo para la seleccion
	 */
	private List<String>listaSexo; 
	
	private boolean bitacora2Gcreada=false;
	private boolean bitacora3Gcreada=false;
	private boolean bitacora1Mcreada=false;
	private boolean bitacora2Mcreada=false;
	private boolean bitacora3Mcreada=false;
	private boolean bitacora4Mcreada=false;
	private boolean informeFinalCreado=false;
	private boolean informeAvanceTecnicoCreado=false;

	/**
	 *Metodo constructor
	 * @throws NamingException
	 */
	public GrupoBean() throws NamingException {

		grupoDelegado = new GrupoDelegado();
		respuestas = new ArrayList<String>();
		respuestas.add("si");
		respuestas.add("no");

		respuestasEncuesta = new ArrayList<String>();
		respuestasEncuesta.add("Excelente");
		respuestasEncuesta.add("Muy Buena");
		respuestasEncuesta.add("Buena");
		respuestasEncuesta.add("Regular ");
		respuestasEncuesta.add("Deficiente");
		respuestasEncuesta.add("Mala ");

		listaDestinoConsulta = new ArrayList<String>();
		listaDestinoConsulta.add("Asesor");
		listaDestinoConsulta.add("Administrador");
		
		listaSexo=new ArrayList<String>();
		listaSexo.add("Femenino");
		listaSexo.add("Masculino");
	}

	/**
	 * Metodo que permite
	 * @return
	 * @throws NamingException
	 */
	public String iniciarSesion() throws NamingException {

		autenticado = grupoDelegado.inicioSesionGrupo(grupo.getLogin(),
				grupo.getClave());
		tieneInvestigacion = grupoDelegado.tieneInvestigacion(grupo.getLogin());

		if (!tieneInvestigacion) {
			investigaciones = grupoDelegado.getInvestigacionGrupo(grupo.getLogin());
			
			for (int i = 0; i < investigaciones.size(); i++) {
				if (investigaciones.get(i).isEstado()) {
				}
			}
		}

		return "";
	}

	/**
	 * Metodo que permite cerrar una sesion
	 * @return "grupoIni" regla de navegacion que me envia a la pagina inicial del grupo
	 */
	public String cerrarSesion() {
		autenticado = false;
		activo = false;
		seleccionado = false;
		investigacionSeleccionada = false;
		return "grupoIni";
	}

	/** Actividades del Grupo **/

	public String crearBitacora2Grupo() {

		bitacora2Gcreada = grupoDelegado.crearBitacora2Grupo(bitacora2,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());

		return "";
	}

	/**
	 * Metodo que permite crear una investigacion
	 * @return
	 */
	public String crearInvestigacion() {
		String login = grupo.getLogin();
		investigacionSeleccionada = true;
		tieneInvestigacion = false;
		inSeleccionada = grupoDelegado.crearInvestigacion(login);
		seleccionado = inSeleccionada.isSeleccionado();
		activo = inSeleccionada.isEstado();
		// JOptionPane.showMessageDialog(null,
		// inSeleccionada.getIdInvestigacion());
		return "";
	}

	/**
	 * Metodo que permite seleccionar una investigacion
	 * @return "grupoIni" regla de navegacion envia a la pagina inicial del grupo
	 */
	public String seleccionInvestigacion() {

		inSeleccionada = (ResumenInvestigacionGrupoDTO) getTablaInvestigaciones()
				.getRowData();
		activo = inSeleccionada.isEstado();
		seleccionado = inSeleccionada.isSeleccionado();
		investigacionSeleccionada = true;

		return "grupoIni";
	}

	/**
	 * Metodo que permite crear Actividades del Grupo Bitacora3Grupo 
	 * @return
	 */

	public String crearBitacora3Grupo() {

		bitacora3Gcreada = grupoDelegado.crearBitacora3Grupo(bitacora3,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());

		return "";

	}

	/**
	 * Metodo que permite crear una Actividad del grupo Bitacora1Maestro 
	 * @return
	 */
	public String crearBitacora1Maestro() {
		bitacora1Mcreada = grupoDelegado.crearBitacora1Maestro(bitacora1Maestro,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		return "";
	}

	/**
	 * Metodo que permite crear la Actividad del grupo Bitacora Numero 2 Para el Maestro
	 * @return
	 */
	public String crearBitacora2Maestro() {

		bitacora2Mcreada = grupoDelegado.crearBitacor2Maestro(bitacora2Maestro,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());

		return "";
	}

	/**
	 * Metodo que permite crear la actividad del grupo denominada Bitacora Numero 3 para el Maestro
	 * @return
	 */
	public String crearBitacora3Maestro() {

		bitacora3Mcreada = grupoDelegado.crearBitacora3Maestro(bitacora3Maestro,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		return "";
	}

	// Falta Cambiar
	/**
	 * Metodo que permite crear la actividad del grupo denominada Bitacora Numero 4 para el Maestro
	 * @return
	 */
	public String crearBitacora4Maestro() {

		autenticado = grupoDelegado.crearBitacora4Maestro(bitacora4Maestro,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		return "";

	}

	/**
	 * Metodo que permite crear la actividad del grupo Informe de Avance Tecnico 
	 * @return
	 */
	public String crearInformeAvanceTecnico() {

		informeAvanceTecnicoCreado = grupoDelegado.crearInformeAvanceTecnico(
				informeAvanceTecnico, inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		return "";
	}

	/**
	 * Metodo que permite crear un formato de visitas programadas  del grupo al Asesor
	 * @return
	 */
	public String crearFormatoVisitasProgramadas() {

		autenticado = grupoDelegado.crearFormatoVisitasProgramadas(
				visitaProgramada, inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		return "";

	}

	/**
	 * Metodo que me obtiene todos los segmento de la actividad Bitacora numero 5 del grupo
	 * @return
	 */
	public String obtenerSegmentosInvestigacion() {
		listaSegmanetos = grupoDelegado
				.obtenerSegmentosInvestigaicon(inSeleccionada.getIdBitacora5());

		segmento1 = listaSegmanetos.get(0);
		segmento2 = listaSegmanetos.get(1);
		segmento3 = listaSegmanetos.get(2);

		return "presupuesto";
	}

	/**
	 * Metodo que permite crear la Actividad Bitacora numero 5 del Grupo
	 * @return obtenerSegmentosInvestigacion() Metodo que devuelve los segmentos de una actividad Bitacora numero 5 del Grupo
	 */
	public String crearBitacora5Presupuesto() {

		autenticado = grupoDelegado.crearSegmento(segmento1, segmento2,
				segmento3, inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());

		return obtenerSegmentosInvestigacion();

	}

	/**
	 * Metodo que permite obtener las actividades pertenecientes 
	 * @return cronograma
	 */
	public String obtenerActividadesInvestigacion() {
		listaActividades = grupoDelegado
				.obtenerActividadesInvestigacion(inSeleccionada
						.getIdInvestigacion());

		return "cronograma";
	}

	/**
	 * Metodo que permite crear Actividades
	 * @return
	 */
	public String crearActividad() {
		grupoDelegado.crearActividad(nuevaActividad,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		nuevaActividad = new Actividad();
		return obtenerActividadesInvestigacion();
	}

	/**
	 * Metodo que permite obtener La encuesta de un Asesor
	 * @return encuestaAsesor
	 */
	public String obtenerAsesorEncuesta() {
		asesor = grupoDelegado.obtenerAsesorInvestigacion(inSeleccionada
				.getIdInvestigacion());
		encuesta = grupoDelegado.obtenerEncuestaInvestigacion(inSeleccionada
				.getIdInvestigacion());
		return "encuestaAsesor";
	}

	/**
	 * Metodo que permite obtener una Actividad para su edicion
	 * @return
	 */
	public String obtenerActividadEditar() {
		actividadSeleccionada = (Actividad) getTablaActividad().getRowData();

		return "";
	}

	/**
	 * Metodo que obtener las Actividades Selecccionadas
	 * @return
	 */
	public String obtenerActividadAvance() {
		actividadSeleccionada = (Actividad) getTablaAvance().getRowData();

		return "";
	}

	/**
	 * Metodo que permite editar una Actividad
	 * @return
	 */
	public String editarActividad() {
		grupoDelegado.editarActividad(actividadSeleccionada);

		return "";
	}

	/**
	 * Metodo que permite obtener un Informe de Avance Tecnico
	 * @return "informeAvanceTecnico"
	 */
	public String obtenerActividadesAvanceTecnico() {
		listaActividades = grupoDelegado
				.obtenerActividadesInvestigacion(inSeleccionada
						.getIdInvestigacion());
		informeAvanceTecnico=grupoDelegado.obtenerAvanceTecnico(inSeleccionada.getIdInvestigacion());

		return "informeAvanceTecnico";
	}

	/**
	 * Metodo que permite crear una Encuesta
	 * @return
	 */
	public String crearEncuesta() {
		grupoDelegado.crearEncuesta(encuesta,
				inSeleccionada.getIdInvestigacion());
		return "";
	}

	/**
	 * Metodo que permite obtener las Lineas Tematicas
	 * @return "informacionInvestigacion"
	 */
	public String obtenerListaLineas() {
		listaLineas = grupoDelegado.obtenerListaLineas();
		return "informacionInvestigacion";
	}

	/**
	 * Metodo que permite obtener una Lista de Consultas
	 * @return "tableroSugerencias"
	 */
	public String obtenerListaConsultas() {
		listaConsultas = grupoDelegado
				.obtenerConsultasInvestigacion(inSeleccionada
						.getIdInvestigacion());
		asesor = grupoDelegado.obtenerAsesorInvestigacion(inSeleccionada
				.getIdInvestigacion());
		listaComentarios = grupoDelegado
				.obtenerComentariosAsesor(inSeleccionada.getIdInvestigacion());
		return "tableroSugerencias";
	}

	// public String obtenerConsultaSeleccion()
	// {
	// consultaSeleccionada=(Consulta) getTablaConsulta().getRowData();
	//
	// return "";
	// }

	/**
	 * Metodo que permite crear una consulta
	 * @return obtenerListaConsultas() Metodo que permite obtener una lista de consultas
	 */
	public String crearConsulta() {
		grupoDelegado.crearConsulta(nuevaConsulta, destinoSeleccionado,
				inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		nuevaConsulta = new Consulta();
		destinoSeleccionado = new String();
		return obtenerListaConsultas();
	}

	/**
	 * Metodo que permite obtener las respuestas de las consultas realizadas
	 * @return
	 */
	public String obtenerRespuestasConsulta() {
		consultaSeleccionada = (Consulta) getTablaConsulta().getRowData();
		listaRespuestasConsulta = grupoDelegado
				.obtenerRespuestasConsulta(consultaSeleccionada
						.getIdentificacion());
		return "";
	}

	/**
	 * Metodo que permite Asignar una Linea Tematica
	 * @return
	 */
	public String asignarLineaTematica() {
		grupoDelegado.asignarLineaTematica(nombreInvestigacion,
				lineaSeleccionada, inSeleccionada.getIdInvestigacion());
		return "";
	}

	/**
	 * Metodo que permite obtener los comentarios que se le realizan a una investigacion
	 * @return "mural" Regla de navegacion redirecciona al mural
	 */
	public String obtenerCometariosInvestigacion() {
		listaComentariosInvestigacion = grupoDelegado
				.obtenerComentariosInvestigacion(inSeleccionada
						.getIdInvestigacion());
		return "mural";
	}

	/**
	 * Metodo que permite crear un comentario
	 * @return obtenerCometariosInvestigacion() Metodo que permite obtener lo comentarios realizados a una investigacion
	 */
	public String crearComentario() {
		grupoDelegado.crearComentario(nuevoComentario,
				inSeleccionada.getIdInvestigacion());
		nuevoComentario = new Comentario();
		return obtenerCometariosInvestigacion();
	}

	/**
	 * Metodo que permite obtener respuestas de los comentarios
	 * @return
	 */
	public String obtenerRespuestasComentario() {
		comentarioSeleccionado = (Comentario) getTablaComentarioInv()
				.getRowData();
		listaRespuestasComentario = grupoDelegado
				.obtenerRespuestasComentario(comentarioSeleccionado
						.getIdentificacion());
		return "";
	}

	/**
	 * Metodo obtener comentarios Grupos 
	 * @return "resumenComentarioGrupo"
	 */
	public String obtenerComentariosGrupos() {
		listaComentariosGrupos = grupoDelegado
				.obtenerResumenComentarios(inSeleccionada.getIdInvestigacion());
		return "resumenComentarioGrupo";
	}

	/**
	 * Metodo obtener respuestas a los comentarios de un grupo
	 * @return
	 */
	public String obtenerRespuestasComentarioGrupo() {
		comentariosGrupo = (ResumenComentarioDTO) getTablaComentarioGrupo()
				.getRowData();
		listaRespuestasComentario = grupoDelegado
				.obtenerRespuestasComentario(comentariosGrupo.getIdComentario());
		return "";
	}

	/**
	 * Metodo que permite obtener lo comentarios de la tabla de comentarios
	 * @return
	 */
	public String obtenerComentario() {
		comentariosGrupo = (ResumenComentarioDTO) getTablaComentarioGrupo()
				.getRowData();
		return "";
	}

	/**
	 * Metodo que permite crear una respuesta comentario a un grupo
	 * @return
	 */
	public String crearRespuestaComentarioGrupo() {

		grupoDelegado.crearRespuestaComentarioGrupo(nuevaRespuestaGrupo,
				comentariosGrupo.getIdComentario());
		nuevaRespuestaGrupo = new RespuestaComentario();
		return "";
	}

	/**
	 * Metodo que permite obtener Bitacora2Grupo
	 * @return  "bitacora2Grupo"
	 */
	public String obtenerBitacora2Grupo() {
		bitacora2 = grupoDelegado.getBitacora2(inSeleccionada
				.getIdInvestigacion());
		return "bitacora2Grupo";
	}

	/**
	 * Metodo que permite obtener la actividad Bitacora3Grupo
	 * @return "bitacora3Grupo"
	 */
	public String obtenerBitacora3Grupo() {
		bitacora3 = grupoDelegado.getBitacora3(inSeleccionada
				.getIdInvestigacion());
		return "bitacora3Grupo";
	}

	/**
	 * Metodo que permite que permite obtener la actividad Bitacora numero 1 del Maestro
	 * @return "bitacora1Maestro"
	 */
	public String obtenerBitacora1Maestro() {
		bitacora1Maestro = grupoDelegado.getBitacora1Maestro(inSeleccionada
				.getIdInvestigacion());
		return "bitacora1Maestro";
	}

	/**
	 * Metodo que permite que permite obtener la actividad Bitacora numero 2 del Maestro
	 * @return "bitacora2Maestro"
	 */
	public String obtenerBitacora2Maestro() {
		bitacora2Maestro = grupoDelegado.getBitacora2Maestro(inSeleccionada
				.getIdInvestigacion());
		return "bitacora2Maestro";
	}
	/**
	 * Metodo que permite que permite obtener la actividad Bitacora numero 3 del Maestro
	 * @return "bitacora3Maestro"
	 */
	public String obtenerBitacora3Maestro() {
		bitacora3Maestro = grupoDelegado.getBitacora3Maestro(inSeleccionada
				.getIdInvestigacion());
		return "bitacora3Maestro";
	}
	
	/**
	 * Metodo que permite que permite obtener la actividad Bitacora numero 4 del Maestro
	 * @return "bitacora4Maestro"
	 */
	public String obtenerBitacora4Maestro() {
		bitacora4Maestro = grupoDelegado.obtenerBitacora4Maestro(inSeleccionada
				.getIdInvestigacion());
		return "bitacora4Maestro";
	}

	/**
	 * Metodo que permite obtener  los estudiantes que pertenecen a un grupo
	 * @return "miembrosGrupo"
	 */
	public String obtenerEstudiantesGrupo() {
		listaEstudiantes = grupoDelegado.obtenerEstudiantesGrupo(grupo
				.getLogin());
		listaMaestros=grupoDelegado.obtenerMaestrosGrupo(grupo.getLogin());
		return "miembrosGrupo";
	}

	/**
	 * Metodo que permite Asignar un estudiante a un grupo
	 * @return obtenerEstudiantesGrupo()
	 */
	public String crearEstudianteGrupo() {
		grupoDelegado.crearEstudianteGrupo(nuevoEstudiante, grupo.getLogin());
		nuevoEstudiante = new Estudiante();
		return obtenerEstudiantesGrupo();
	}

	/**
	 * Metodo que permite obtener los estudiantes pertenecientes a una investigacion patrocinada
	 * @return
	 */
	public String obtenerSeleccionEstudiante() {
		estudianteSeleccionado = (Estudiante) getTablaEstudiantes()
				.getRowData();
		return "";
	}
	
	/**
	 * Metodo que permite  selecionar una maestro de una tabla
	 * @return
	 */
	public String obtenerSeleccionMaestro() {
		maestroSeleccionado=(Maestro) tablaMaestros
				.getRowData();
		return "";
	}
	
	/**
	 * Metodo que permite crear un Maestro y asignarlo a un Grupo
	 * @return
	 */
	public String crearMaestroGrupo() {
		grupoDelegado.crearMaestroGrupo(nuevoMaestro, grupo.getLogin());
		nuevoEstudiante = new Estudiante();
		return obtenerEstudiantesGrupo();
	}
	
	/**
	 * Metodo que permite editar los datos de un estudiante almacenados en el sistema
	 * @return
	 */
	public String editarEstudiante()
	{
		grupoDelegado.editarEstudiante(estudianteSeleccionado);
		return"";
	}
	
	/**
	 * Metodo que permite eliminar un Estudiante del sistema
	 * @return
	 */
	public String eliminarEstudiante()
	{
		grupoDelegado.eliminarEstudiante(estudianteSeleccionado);
		return obtenerEstudiantesGrupo();
	}
	
	/**
	 * Metodo que permite editar la informacion de un maestro registrado en el sistema
	 * @return
	 */
	public String editarMaestro()
	{
		grupoDelegado.editarMaestro(maestroSeleccionado);
		return"";
	}
	
	/**
	 * Metodo que permite eliminar un Maestro registrado en el sistema
	 * @return
	 */
	public String eliminarMaestro()
	{
		grupoDelegado.eliminarMaestro(maestroSeleccionado);
		return obtenerEstudiantesGrupo();
	}
	
	/**
	 * Metodo que permite obtener un informe final
	 * @return "informeFinal"
	 */
	public String obtenerInformeFinal()
	{
		informeFinal=grupoDelegado.obtenerInformeFinal(inSeleccionada.getIdInvestigacion());
		return "informeFinal";
	}
	
	/**
	 * Metodo que permite crear un informe final
	 * @return
	 */
	public String crearInformeFinal()
	{
		informeFinalCreado=grupoDelegado.crearInformeFinal(informeFinal, inSeleccionada.getIdInvestigacion(), inSeleccionada.isEstado());
		return "";
	}

	/**
	 *Metodo accesor del atributo grupo
	 * @return the grupo
	 */
	public Grupo getGrupo() {
		return grupo;
	}

	/**
	 *Metodo Modificador del atributo grupo
	 * @param grupo the grupo to set
	 */
	public void setGrupo(Grupo grupo) {
		this.grupo = grupo;
	}

	/**
	 *Metodo accesor del atributo autenticado
	 * @return the autenticado
	 */
	public boolean isAutenticado() {
		return autenticado;
	}

	/**
	 *Metodo Modificador del atributo autenticado
	 * @param autenticado the autenticado to set
	 */
	public void setAutenticado(boolean autenticado) {
		this.autenticado = autenticado;
	}

	/**
	 *Metodo accesor del atributo tieneInvestigacion
	 * @return the tieneInvestigacion
	 */
	public boolean isTieneInvestigacion() {
		return tieneInvestigacion;
	}

	/**
	 *Metodo Modificador del atributo tieneInvestigacion
	 * @param tieneInvestigacion the tieneInvestigacion to set
	 */
	public void setTieneInvestigacion(boolean tieneInvestigacion) {
		this.tieneInvestigacion = tieneInvestigacion;
	}

	/**
	 *Metodo accesor del atributo seleccionado
	 * @return the seleccionado
	 */
	public boolean isSeleccionado() {
		return seleccionado;
	}

	/**
	 *Metodo Modificador del atributo seleccionado
	 * @param seleccionado the seleccionado to set
	 */
	public void setSeleccionado(boolean seleccionado) {
		this.seleccionado = seleccionado;
	}

	/**
	 *Metodo accesor del atributo activo
	 * @return the activo
	 */
	public boolean isActivo() {
		return activo;
	}

	/**
	 *Metodo Modificador del atributo activo
	 * @param activo the activo to set
	 */
	public void setActivo(boolean activo) {
		this.activo = activo;
	}

	/**
	 *Metodo accesor del atributo investigacionSeleccionada
	 * @return the investigacionSeleccionada
	 */
	public boolean isInvestigacionSeleccionada() {
		return investigacionSeleccionada;
	}

	/**
	 *Metodo Modificador del atributo investigacionSeleccionada
	 * @param investigacionSeleccionada the investigacionSeleccionada to set
	 */
	public void setInvestigacionSeleccionada(boolean investigacionSeleccionada) {
		this.investigacionSeleccionada = investigacionSeleccionada;
	}

	/**
	 *Metodo accesor del atributo nuevaInvestigacion
	 * @return the nuevaInvestigacion
	 */
	public boolean isNuevaInvestigacion() {
		return nuevaInvestigacion;
	}

	/**
	 *Metodo Modificador del atributo nuevaInvestigacion
	 * @param nuevaInvestigacion the nuevaInvestigacion to set
	 */
	public void setNuevaInvestigacion(boolean nuevaInvestigacion) {
		this.nuevaInvestigacion = nuevaInvestigacion;
	}

	/**
	 *Metodo accesor del atributo tablaInvestigaciones
	 * @return the tablaInvestigaciones
	 */
	public HtmlDataTable getTablaInvestigaciones() {
		return tablaInvestigaciones;
	}

	/**
	 *Metodo Modificador del atributo tablaInvestigaciones
	 * @param tablaInvestigaciones the tablaInvestigaciones to set
	 */
	public void setTablaInvestigaciones(HtmlDataTable tablaInvestigaciones) {
		this.tablaInvestigaciones = tablaInvestigaciones;
	}

	/**
	 *Metodo accesor del atributo investigaciones
	 * @return the investigaciones
	 */
	public List<ResumenInvestigacionGrupoDTO> getInvestigaciones() {
		return investigaciones;
	}

	/**
	 *Metodo Modificador del atributo investigaciones
	 * @param investigaciones the investigaciones to set
	 */
	public void setInvestigaciones(
			List<ResumenInvestigacionGrupoDTO> investigaciones) {
		this.investigaciones = investigaciones;
	}

	/**
	 *Metodo accesor del atributo bitacora2
	 * @return the bitacora2
	 */
	public Bitacora2 getBitacora2() {
		return bitacora2;
	}

	/**
	 *Metodo Modificador del atributo bitacora2
	 * @param bitacora2 the bitacora2 to set
	 */
	public void setBitacora2(Bitacora2 bitacora2) {
		this.bitacora2 = bitacora2;
	}

	/**
	 *Metodo accesor del atributo bitacora3
	 * @return the bitacora3
	 */
	public Bitacora3 getBitacora3() {
		return bitacora3;
	}

	/**
	 *Metodo Modificador del atributo bitacora3
	 * @param bitacora3 the bitacora3 to set
	 */
	public void setBitacora3(Bitacora3 bitacora3) {
		this.bitacora3 = bitacora3;
	}

	/**
	 *Metodo accesor del atributo bitacora1Maestro
	 * @return the bitacora1Maestro
	 */
	public Bitacora1Maestro getBitacora1Maestro() {
		return bitacora1Maestro;
	}

	/**
	 *Metodo Modificador del atributo bitacora1Maestro
	 * @param bitacora1Maestro the bitacora1Maestro to set
	 */
	public void setBitacora1Maestro(Bitacora1Maestro bitacora1Maestro) {
		this.bitacora1Maestro = bitacora1Maestro;
	}

	/**
	 *Metodo accesor del atributo bitacora2Maestro
	 * @return the bitacora2Maestro
	 */
	public Bitacora2Maestro getBitacora2Maestro() {
		return bitacora2Maestro;
	}

	/**
	 *Metodo Modificador del atributo bitacora2Maestro
	 * @param bitacora2Maestro the bitacora2Maestro to set
	 */
	public void setBitacora2Maestro(Bitacora2Maestro bitacora2Maestro) {
		this.bitacora2Maestro = bitacora2Maestro;
	}

	/**
	 *Metodo accesor del atributo bitacora3Maestro
	 * @return the bitacora3Maestro
	 */
	public Bitacora3Maestro getBitacora3Maestro() {
		return bitacora3Maestro;
	}

	/**
	 *Metodo Modificador del atributo bitacora3Maestro
	 * @param bitacora3Maestro the bitacora3Maestro to set
	 */
	public void setBitacora3Maestro(Bitacora3Maestro bitacora3Maestro) {
		this.bitacora3Maestro = bitacora3Maestro;
	}

	/**
	 *Metodo accesor del atributo bitacora4Maestro
	 * @return the bitacora4Maestro
	 */
	public Bitacora4Maestro getBitacora4Maestro() {
		return bitacora4Maestro;
	}

	/**
	 *Metodo Modificador del atributo bitacora4Maestro
	 * @param bitacora4Maestro the bitacora4Maestro to set
	 */
	public void setBitacora4Maestro(Bitacora4Maestro bitacora4Maestro) {
		this.bitacora4Maestro = bitacora4Maestro;
	}

	/**
	 *Metodo accesor del atributo informeAvanceTecnico
	 * @return the informeAvanceTecnico
	 */
	public InformeAvanceTecnico getInformeAvanceTecnico() {
		return informeAvanceTecnico;
	}

	/**
	 *Metodo Modificador del atributo informeAvanceTecnico
	 * @param informeAvanceTecnico the informeAvanceTecnico to set
	 */
	public void setInformeAvanceTecnico(InformeAvanceTecnico informeAvanceTecnico) {
		this.informeAvanceTecnico = informeAvanceTecnico;
	}

	/**
	 *Metodo accesor del atributo visitaProgramada
	 * @return the visitaProgramada
	 */
	public VisitaProgramada getVisitaProgramada() {
		return visitaProgramada;
	}

	/**
	 *Metodo Modificador del atributo visitaProgramada
	 * @param visitaProgramada the visitaProgramada to set
	 */
	public void setVisitaProgramada(VisitaProgramada visitaProgramada) {
		this.visitaProgramada = visitaProgramada;
	}

	/**
	 *Metodo accesor del atributo informeFinal
	 * @return the informeFinal
	 */
	public InformeFinal getInformeFinal() {
		return informeFinal;
	}

	/**
	 *Metodo Modificador del atributo informeFinal
	 * @param informeFinal the informeFinal to set
	 */
	public void setInformeFinal(InformeFinal informeFinal) {
		this.informeFinal = informeFinal;
	}

	/**
	 *Metodo accesor del atributo bitacora5
	 * @return the bitacora5
	 */
	public Bitacora5 getBitacora5() {
		return bitacora5;
	}

	/**
	 *Metodo Modificador del atributo bitacora5
	 * @param bitacora5 the bitacora5 to set
	 */
	public void setBitacora5(Bitacora5 bitacora5) {
		this.bitacora5 = bitacora5;
	}

	/**
	 *Metodo accesor del atributo listaSegmanetos
	 * @return the listaSegmanetos
	 */
	public List<Segmento> getListaSegmanetos() {
		return listaSegmanetos;
	}

	/**
	 *Metodo Modificador del atributo listaSegmanetos
	 * @param listaSegmanetos the listaSegmanetos to set
	 */
	public void setListaSegmanetos(List<Segmento> listaSegmanetos) {
		this.listaSegmanetos = listaSegmanetos;
	}

	/**
	 *Metodo accesor del atributo segmento1
	 * @return the segmento1
	 */
	public Segmento getSegmento1() {
		return segmento1;
	}

	/**
	 *Metodo Modificador del atributo segmento1
	 * @param segmento1 the segmento1 to set
	 */
	public void setSegmento1(Segmento segmento1) {
		this.segmento1 = segmento1;
	}

	/**
	 *Metodo accesor del atributo segmento2
	 * @return the segmento2
	 */
	public Segmento getSegmento2() {
		return segmento2;
	}

	/**
	 *Metodo Modificador del atributo segmento2
	 * @param segmento2 the segmento2 to set
	 */
	public void setSegmento2(Segmento segmento2) {
		this.segmento2 = segmento2;
	}

	/**
	 *Metodo accesor del atributo segmento3
	 * @return the segmento3
	 */
	public Segmento getSegmento3() {
		return segmento3;
	}

	/**
	 *Metodo Modificador del atributo segmento3
	 * @param segmento3 the segmento3 to set
	 */
	public void setSegmento3(Segmento segmento3) {
		this.segmento3 = segmento3;
	}

	/**
	 *Metodo accesor del atributo listaActividades
	 * @return the listaActividades
	 */
	public List<Actividad> getListaActividades() {
		return listaActividades;
	}

	/**
	 *Metodo Modificador del atributo listaActividades
	 * @param listaActividades the listaActividades to set
	 */
	public void setListaActividades(List<Actividad> listaActividades) {
		this.listaActividades = listaActividades;
	}

	/**
	 *Metodo accesor del atributo nuevaActividad
	 * @return the nuevaActividad
	 */
	public Actividad getNuevaActividad() {
		return nuevaActividad;
	}

	/**
	 *Metodo Modificador del atributo nuevaActividad
	 * @param nuevaActividad the nuevaActividad to set
	 */
	public void setNuevaActividad(Actividad nuevaActividad) {
		this.nuevaActividad = nuevaActividad;
	}

	/**
	 *Metodo accesor del atributo actividadSeleccionada
	 * @return the actividadSeleccionada
	 */
	public Actividad getActividadSeleccionada() {
		return actividadSeleccionada;
	}

	/**
	 *Metodo Modificador del atributo actividadSeleccionada
	 * @param actividadSeleccionada the actividadSeleccionada to set
	 */
	public void setActividadSeleccionada(Actividad actividadSeleccionada) {
		this.actividadSeleccionada = actividadSeleccionada;
	}

	/**
	 *Metodo accesor del atributo tablaActividad
	 * @return the tablaActividad
	 */
	public HtmlDataTable getTablaActividad() {
		return tablaActividad;
	}

	/**
	 *Metodo Modificador del atributo tablaActividad
	 * @param tablaActividad the tablaActividad to set
	 */
	public void setTablaActividad(HtmlDataTable tablaActividad) {
		this.tablaActividad = tablaActividad;
	}

	/**
	 *Metodo accesor del atributo tablaAvance
	 * @return the tablaAvance
	 */
	public HtmlDataTable getTablaAvance() {
		return tablaAvance;
	}

	/**
	 *Metodo Modificador del atributo tablaAvance
	 * @param tablaAvance the tablaAvance to set
	 */
	public void setTablaAvance(HtmlDataTable tablaAvance) {
		this.tablaAvance = tablaAvance;
	}

	/**
	 *Metodo accesor del atributo tablaConsulta
	 * @return the tablaConsulta
	 */
	public HtmlDataTable getTablaConsulta() {
		return tablaConsulta;
	}

	/**
	 *Metodo Modificador del atributo tablaConsulta
	 * @param tablaConsulta the tablaConsulta to set
	 */
	public void setTablaConsulta(HtmlDataTable tablaConsulta) {
		this.tablaConsulta = tablaConsulta;
	}

	/**
	 *Metodo accesor del atributo consultaSeleccionada
	 * @return the consultaSeleccionada
	 */
	public Consulta getConsultaSeleccionada() {
		return consultaSeleccionada;
	}

	/**
	 *Metodo Modificador del atributo consultaSeleccionada
	 * @param consultaSeleccionada the consultaSeleccionada to set
	 */
	public void setConsultaSeleccionada(Consulta consultaSeleccionada) {
		this.consultaSeleccionada = consultaSeleccionada;
	}

	/**
	 *Metodo accesor del atributo nuevaConsulta
	 * @return the nuevaConsulta
	 */
	public Consulta getNuevaConsulta() {
		return nuevaConsulta;
	}

	/**
	 *Metodo Modificador del atributo nuevaConsulta
	 * @param nuevaConsulta the nuevaConsulta to set
	 */
	public void setNuevaConsulta(Consulta nuevaConsulta) {
		this.nuevaConsulta = nuevaConsulta;
	}

	/**
	 *Metodo accesor del atributo listaConsultas
	 * @return the listaConsultas
	 */
	public List<Consulta> getListaConsultas() {
		return listaConsultas;
	}

	/**
	 *Metodo Modificador del atributo listaConsultas
	 * @param listaConsultas the listaConsultas to set
	 */
	public void setListaConsultas(List<Consulta> listaConsultas) {
		this.listaConsultas = listaConsultas;
	}

	/**
	 *Metodo accesor del atributo listaRespuestasConsulta
	 * @return the listaRespuestasConsulta
	 */
	public List<RespuestaConsulta> getListaRespuestasConsulta() {
		return listaRespuestasConsulta;
	}

	/**
	 *Metodo Modificador del atributo listaRespuestasConsulta
	 * @param listaRespuestasConsulta the listaRespuestasConsulta to set
	 */
	public void setListaRespuestasConsulta(
			List<RespuestaConsulta> listaRespuestasConsulta) {
		this.listaRespuestasConsulta = listaRespuestasConsulta;
	}

	/**
	 *Metodo accesor del atributo listaComentarios
	 * @return the listaComentarios
	 */
	public List<ComentarioAsesor> getListaComentarios() {
		return listaComentarios;
	}

	/**
	 *Metodo Modificador del atributo listaComentarios
	 * @param listaComentarios the listaComentarios to set
	 */
	public void setListaComentarios(List<ComentarioAsesor> listaComentarios) {
		this.listaComentarios = listaComentarios;
	}

	/**
	 *Metodo accesor del atributo inSeleccionada
	 * @return the inSeleccionada
	 */
	public ResumenInvestigacionGrupoDTO getInSeleccionada() {
		return inSeleccionada;
	}

	/**
	 *Metodo Modificador del atributo inSeleccionada
	 * @param inSeleccionada the inSeleccionada to set
	 */
	public void setInSeleccionada(ResumenInvestigacionGrupoDTO inSeleccionada) {
		this.inSeleccionada = inSeleccionada;
	}

	/**
	 *Metodo accesor del atributo grupoDelegado
	 * @return the grupoDelegado
	 */
	public GrupoDelegado getGrupoDelegado() {
		return grupoDelegado;
	}

	/**
	 *Metodo Modificador del atributo grupoDelegado
	 * @param grupoDelegado the grupoDelegado to set
	 */
	public void setGrupoDelegado(GrupoDelegado grupoDelegado) {
		this.grupoDelegado = grupoDelegado;
	}

	/**
	 *Metodo accesor del atributo encuesta
	 * @return the encuesta
	 */
	public Encuesta getEncuesta() {
		return encuesta;
	}

	/**
	 *Metodo Modificador del atributo encuesta
	 * @param encuesta the encuesta to set
	 */
	public void setEncuesta(Encuesta encuesta) {
		this.encuesta = encuesta;
	}

	/**
	 *Metodo accesor del atributo respuestas
	 * @return the respuestas
	 */
	public List<String> getRespuestas() {
		return respuestas;
	}

	/**
	 *Metodo Modificador del atributo respuestas
	 * @param respuestas the respuestas to set
	 */
	public void setRespuestas(List<String> respuestas) {
		this.respuestas = respuestas;
	}

	/**
	 *Metodo accesor del atributo respuestasEncuesta
	 * @return the respuestasEncuesta
	 */
	public List<String> getRespuestasEncuesta() {
		return respuestasEncuesta;
	}

	/**
	 *Metodo Modificador del atributo respuestasEncuesta
	 * @param respuestasEncuesta the respuestasEncuesta to set
	 */
	public void setRespuestasEncuesta(List<String> respuestasEncuesta) {
		this.respuestasEncuesta = respuestasEncuesta;
	}

	/**
	 *Metodo accesor del atributo listaLineas
	 * @return the listaLineas
	 */
	public List<String> getListaLineas() {
		return listaLineas;
	}

	/**
	 *Metodo Modificador del atributo listaLineas
	 * @param listaLineas the listaLineas to set
	 */
	public void setListaLineas(List<String> listaLineas) {
		this.listaLineas = listaLineas;
	}

	/**
	 *Metodo accesor del atributo listaDestinoConsulta
	 * @return the listaDestinoConsulta
	 */
	public List<String> getListaDestinoConsulta() {
		return listaDestinoConsulta;
	}

	/**
	 *Metodo Modificador del atributo listaDestinoConsulta
	 * @param listaDestinoConsulta the listaDestinoConsulta to set
	 */
	public void setListaDestinoConsulta(List<String> listaDestinoConsulta) {
		this.listaDestinoConsulta = listaDestinoConsulta;
	}

	/**
	 *Metodo accesor del atributo asesor
	 * @return the asesor
	 */
	public Asesor getAsesor() {
		return asesor;
	}

	/**
	 *Metodo Modificador del atributo asesor
	 * @param asesor the asesor to set
	 */
	public void setAsesor(Asesor asesor) {
		this.asesor = asesor;
	}

	/**
	 *Metodo accesor del atributo lineaSeleccionada
	 * @return the lineaSeleccionada
	 */
	public String getLineaSeleccionada() {
		return lineaSeleccionada;
	}

	/**
	 *Metodo Modificador del atributo lineaSeleccionada
	 * @param lineaSeleccionada the lineaSeleccionada to set
	 */
	public void setLineaSeleccionada(String lineaSeleccionada) {
		this.lineaSeleccionada = lineaSeleccionada;
	}

	/**
	 *Metodo accesor del atributo nombreInvestigacion
	 * @return the nombreInvestigacion
	 */
	public String getNombreInvestigacion() {
		return nombreInvestigacion;
	}

	/**
	 *Metodo Modificador del atributo nombreInvestigacion
	 * @param nombreInvestigacion the nombreInvestigacion to set
	 */
	public void setNombreInvestigacion(String nombreInvestigacion) {
		this.nombreInvestigacion = nombreInvestigacion;
	}

	/**
	 *Metodo accesor del atributo destinoSeleccionado
	 * @return the destinoSeleccionado
	 */
	public String getDestinoSeleccionado() {
		return destinoSeleccionado;
	}

	/**
	 *Metodo Modificador del atributo destinoSeleccionado
	 * @param destinoSeleccionado the destinoSeleccionado to set
	 */
	public void setDestinoSeleccionado(String destinoSeleccionado) {
		this.destinoSeleccionado = destinoSeleccionado;
	}

	/**
	 *Metodo accesor del atributo listaComentariosInvestigacion
	 * @return the listaComentariosInvestigacion
	 */
	public List<Comentario> getListaComentariosInvestigacion() {
		return listaComentariosInvestigacion;
	}

	/**
	 *Metodo Modificador del atributo listaComentariosInvestigacion
	 * @param listaComentariosInvestigacion the listaComentariosInvestigacion to set
	 */
	public void setListaComentariosInvestigacion(
			List<Comentario> listaComentariosInvestigacion) {
		this.listaComentariosInvestigacion = listaComentariosInvestigacion;
	}

	/**
	 *Metodo accesor del atributo listaRespuestasComentario
	 * @return the listaRespuestasComentario
	 */
	public List<RespuestaComentario> getListaRespuestasComentario() {
		return listaRespuestasComentario;
	}

	/**
	 *Metodo Modificador del atributo listaRespuestasComentario
	 * @param listaRespuestasComentario the listaRespuestasComentario to set
	 */
	public void setListaRespuestasComentario(
			List<RespuestaComentario> listaRespuestasComentario) {
		this.listaRespuestasComentario = listaRespuestasComentario;
	}

	/**
	 *Metodo accesor del atributo tablaComentarioInv
	 * @return the tablaComentarioInv
	 */
	public HtmlDataTable getTablaComentarioInv() {
		return tablaComentarioInv;
	}

	/**
	 *Metodo Modificador del atributo tablaComentarioInv
	 * @param tablaComentarioInv the tablaComentarioInv to set
	 */
	public void setTablaComentarioInv(HtmlDataTable tablaComentarioInv) {
		this.tablaComentarioInv = tablaComentarioInv;
	}

	/**
	 *Metodo accesor del atributo comentarioSeleccionado
	 * @return the comentarioSeleccionado
	 */
	public Comentario getComentarioSeleccionado() {
		return comentarioSeleccionado;
	}

	/**
	 *Metodo Modificador del atributo comentarioSeleccionado
	 * @param comentarioSeleccionado the comentarioSeleccionado to set
	 */
	public void setComentarioSeleccionado(Comentario comentarioSeleccionado) {
		this.comentarioSeleccionado = comentarioSeleccionado;
	}

	/**
	 *Metodo accesor del atributo nuevoComentario
	 * @return the nuevoComentario
	 */
	public Comentario getNuevoComentario() {
		return nuevoComentario;
	}

	/**
	 *Metodo Modificador del atributo nuevoComentario
	 * @param nuevoComentario the nuevoComentario to set
	 */
	public void setNuevoComentario(Comentario nuevoComentario) {
		this.nuevoComentario = nuevoComentario;
	}

	/**
	 *Metodo accesor del atributo listaComentariosGrupos
	 * @return the listaComentariosGrupos
	 */
	public List<ResumenComentarioDTO> getListaComentariosGrupos() {
		return listaComentariosGrupos;
	}

	/**
	 *Metodo Modificador del atributo listaComentariosGrupos
	 * @param listaComentariosGrupos the listaComentariosGrupos to set
	 */
	public void setListaComentariosGrupos(
			List<ResumenComentarioDTO> listaComentariosGrupos) {
		this.listaComentariosGrupos = listaComentariosGrupos;
	}

	/**
	 *Metodo accesor del atributo comentariosGrupo
	 * @return the comentariosGrupo
	 */
	public ResumenComentarioDTO getComentariosGrupo() {
		return comentariosGrupo;
	}

	/**
	 *Metodo Modificador del atributo comentariosGrupo
	 * @param comentariosGrupo the comentariosGrupo to set
	 */
	public void setComentariosGrupo(ResumenComentarioDTO comentariosGrupo) {
		this.comentariosGrupo = comentariosGrupo;
	}

	/**
	 *Metodo accesor del atributo tablaComentarioGrupo
	 * @return the tablaComentarioGrupo
	 */
	public HtmlDataTable getTablaComentarioGrupo() {
		return tablaComentarioGrupo;
	}

	/**
	 *Metodo Modificador del atributo tablaComentarioGrupo
	 * @param tablaComentarioGrupo the tablaComentarioGrupo to set
	 */
	public void setTablaComentarioGrupo(HtmlDataTable tablaComentarioGrupo) {
		this.tablaComentarioGrupo = tablaComentarioGrupo;
	}

	/**
	 *Metodo accesor del atributo nuevoComentarioGrupo
	 * @return the nuevoComentarioGrupo
	 */
	public Comentario getNuevoComentarioGrupo() {
		return nuevoComentarioGrupo;
	}

	/**
	 *Metodo Modificador del atributo nuevoComentarioGrupo
	 * @param nuevoComentarioGrupo the nuevoComentarioGrupo to set
	 */
	public void setNuevoComentarioGrupo(Comentario nuevoComentarioGrupo) {
		this.nuevoComentarioGrupo = nuevoComentarioGrupo;
	}

	/**
	 *Metodo accesor del atributo nuevaRespuestaGrupo
	 * @return the nuevaRespuestaGrupo
	 */
	public RespuestaComentario getNuevaRespuestaGrupo() {
		return nuevaRespuestaGrupo;
	}

	/**
	 *Metodo Modificador del atributo nuevaRespuestaGrupo
	 * @param nuevaRespuestaGrupo the nuevaRespuestaGrupo to set
	 */
	public void setNuevaRespuestaGrupo(RespuestaComentario nuevaRespuestaGrupo) {
		this.nuevaRespuestaGrupo = nuevaRespuestaGrupo;
	}

	/**
	 *Metodo accesor del atributo listaEstudiantes
	 * @return the listaEstudiantes
	 */
	public List<Estudiante> getListaEstudiantes() {
		return listaEstudiantes;
	}

	/**
	 *Metodo Modificador del atributo listaEstudiantes
	 * @param listaEstudiantes the listaEstudiantes to set
	 */
	public void setListaEstudiantes(List<Estudiante> listaEstudiantes) {
		this.listaEstudiantes = listaEstudiantes;
	}

	/**
	 *Metodo accesor del atributo tablaEstudiantes
	 * @return the tablaEstudiantes
	 */
	public HtmlDataTable getTablaEstudiantes() {
		return tablaEstudiantes;
	}

	/**
	 *Metodo Modificador del atributo tablaEstudiantes
	 * @param tablaEstudiantes the tablaEstudiantes to set
	 */
	public void setTablaEstudiantes(HtmlDataTable tablaEstudiantes) {
		this.tablaEstudiantes = tablaEstudiantes;
	}

	/**
	 *Metodo accesor del atributo nuevoEstudiante
	 * @return the nuevoEstudiante
	 */
	public Estudiante getNuevoEstudiante() {
		return nuevoEstudiante;
	}

	/**
	 *Metodo Modificador del atributo nuevoEstudiante
	 * @param nuevoEstudiante the nuevoEstudiante to set
	 */
	public void setNuevoEstudiante(Estudiante nuevoEstudiante) {
		this.nuevoEstudiante = nuevoEstudiante;
	}

	/**
	 *Metodo accesor del atributo estudianteSeleccionado
	 * @return the estudianteSeleccionado
	 */
	public Estudiante getEstudianteSeleccionado() {
		return estudianteSeleccionado;
	}

	/**
	 *Metodo Modificador del atributo estudianteSeleccionado
	 * @param estudianteSeleccionado the estudianteSeleccionado to set
	 */
	public void setEstudianteSeleccionado(Estudiante estudianteSeleccionado) {
		this.estudianteSeleccionado = estudianteSeleccionado;
	}

	/**
	 *Metodo accesor del atributo listaMaestros
	 * @return the listaMaestros
	 */
	public List<Maestro> getListaMaestros() {
		return listaMaestros;
	}

	/**
	 *Metodo Modificador del atributo listaMaestros
	 * @param listaMaestros the listaMaestros to set
	 */
	public void setListaMaestros(List<Maestro> listaMaestros) {
		this.listaMaestros = listaMaestros;
	}

	/**
	 *Metodo accesor del atributo tablaMaestros
	 * @return the tablaMaestros
	 */
	public HtmlDataTable getTablaMaestros() {
		return tablaMaestros;
	}

	/**
	 *Metodo Modificador del atributo tablaMaestros
	 * @param tablaMaestros the tablaMaestros to set
	 */
	public void setTablaMaestros(HtmlDataTable tablaMaestros) {
		this.tablaMaestros = tablaMaestros;
	}

	/**
	 *Metodo accesor del atributo nuevoMaestro
	 * @return the nuevoMaestro
	 */
	public Maestro getNuevoMaestro() {
		return nuevoMaestro;
	}

	/**
	 *Metodo Modificador del atributo nuevoMaestro
	 * @param nuevoMaestro the nuevoMaestro to set
	 */
	public void setNuevoMaestro(Maestro nuevoMaestro) {
		this.nuevoMaestro = nuevoMaestro;
	}

	/**
	 *Metodo accesor del atributo maestroSeleccionado
	 * @return the maestroSeleccionado
	 */
	public Maestro getMaestroSeleccionado() {
		return maestroSeleccionado;
	}

	/**
	 *Metodo Modificador del atributo maestroSeleccionado
	 * @param maestroSeleccionado the maestroSeleccionado to set
	 */
	public void setMaestroSeleccionado(Maestro maestroSeleccionado) {
		this.maestroSeleccionado = maestroSeleccionado;
	}

	/**
	 *Metodo accesor del atributo listaSexo
	 * @return the listaSexo
	 */
	public List<String> getListaSexo() {
		return listaSexo;
	}

	/**
	 *Metodo Modificador del atributo listaSexo
	 * @param listaSexo the listaSexo to set
	 */
	public void setListaSexo(List<String> listaSexo) {
		this.listaSexo = listaSexo;
	}

	/**
	 *Metodo accesor del atributo bitacora2Gcreada
	 * @return the bitacora2Gcreada
	 */
	public boolean isBitacora2Gcreada() {
		return bitacora2Gcreada;
	}

	/**
	 *Metodo Modificador del atributo bitacora2Gcreada
	 * @param bitacora2Gcreada the bitacora2Gcreada to set
	 */
	public void setBitacora2Gcreada(boolean bitacora2Gcreada) {
		this.bitacora2Gcreada = bitacora2Gcreada;
	}

	/**
	 *Metodo accesor del atributo bitacora3Gcreada
	 * @return the bitacora3Gcreada
	 */
	public boolean isBitacora3Gcreada() {
		return bitacora3Gcreada;
	}

	/**
	 *Metodo Modificador del atributo bitacora3Gcreada
	 * @param bitacora3Gcreada the bitacora3Gcreada to set
	 */
	public void setBitacora3Gcreada(boolean bitacora3Gcreada) {
		this.bitacora3Gcreada = bitacora3Gcreada;
	}

	/**
	 *Metodo accesor del atributo bitacora1Mcreada
	 * @return the bitacora1Mcreada
	 */
	public boolean isBitacora1Mcreada() {
		return bitacora1Mcreada;
	}

	/**
	 *Metodo Modificador del atributo bitacora1Mcreada
	 * @param bitacora1Mcreada the bitacora1Mcreada to set
	 */
	public void setBitacora1Mcreada(boolean bitacora1Mcreada) {
		this.bitacora1Mcreada = bitacora1Mcreada;
	}

	/**
	 *Metodo accesor del atributo bitacora2Mcreada
	 * @return the bitacora2Mcreada
	 */
	public boolean isBitacora2Mcreada() {
		return bitacora2Mcreada;
	}

	/**
	 *Metodo Modificador del atributo bitacora2Mcreada
	 * @param bitacora2Mcreada the bitacora2Mcreada to set
	 */
	public void setBitacora2Mcreada(boolean bitacora2Mcreada) {
		this.bitacora2Mcreada = bitacora2Mcreada;
	}

	/**
	 *Metodo accesor del atributo bitacora3Mcreada
	 * @return the bitacora3Mcreada
	 */
	public boolean isBitacora3Mcreada() {
		return bitacora3Mcreada;
	}

	/**
	 *Metodo Modificador del atributo bitacora3Mcreada
	 * @param bitacora3Mcreada the bitacora3Mcreada to set
	 */
	public void setBitacora3Mcreada(boolean bitacora3Mcreada) {
		this.bitacora3Mcreada = bitacora3Mcreada;
	}

	/**
	 *Metodo accesor del atributo bitacora4Mcreada
	 * @return the bitacora4Mcreada
	 */
	public boolean isBitacora4Mcreada() {
		return bitacora4Mcreada;
	}

	/**
	 *Metodo Modificador del atributo bitacora4Mcreada
	 * @param bitacora4Mcreada the bitacora4Mcreada to set
	 */
	public void setBitacora4Mcreada(boolean bitacora4Mcreada) {
		this.bitacora4Mcreada = bitacora4Mcreada;
	}

	/**
	 *Metodo accesor del atributo informeFinalCreado
	 * @return the informeFinalCreado
	 */
	public boolean isInformeFinalCreado() {
		return informeFinalCreado;
	}

	/**
	 *Metodo Modificador del atributo informeFinalCreado
	 * @param informeFinalCreado the informeFinalCreado to set
	 */
	public void setInformeFinalCreado(boolean informeFinalCreado) {
		this.informeFinalCreado = informeFinalCreado;
	}

	/**
	 *Metodo accesor del atributo informeAvanceTecnicoCreado
	 * @return the informeAvanceTecnicoCreado
	 */
	public boolean isInformeAvanceTecnicoCreado() {
		return informeAvanceTecnicoCreado;
	}

	/**
	 *Metodo Modificador del atributo informeAvanceTecnicoCreado
	 * @param informeAvanceTecnicoCreado the informeAvanceTecnicoCreado to set
	 */
	public void setInformeAvanceTecnicoCreado(boolean informeAvanceTecnicoCreado) {
		this.informeAvanceTecnicoCreado = informeAvanceTecnicoCreado;
	}
	
	

	
	
}
